const { recordProxyJson } = require('./mock/record');
// 拼接路径
// const resolve = (dir) => require('path').join(__dirname, dir);

// 增加环境变量
process.env.VUE_APP_VERSION = require('./package.json').version;

const saveJSON = process.env.NODE_ENV === 'development' && process.env.VUE_APP_SAVE_JSON === 'true';
const context = process.env.VUE_APP_API;
// 是否使用sourceMap
const sourceMap = false;

// 基础路径 注意发布之前要先修改这里
let publicPath = '';

module.exports = {
  // 根据你的实际情况更改这里
  publicPath,
  transpileDependencies: ['@csii/vx-util', '@csii/vx-util-plugin-vue', 'vue-runtime-helpers', 'asn1.js'],
  lintOnSave: false,
  productionSourceMap: sourceMap,
  devServer: {
    open: true,
    overlay: {
      warnings: false,
      errors: true,
    },
    proxy: {
      [context]: {
        target: 'http://localhost:8080',
        changeOrigin: true,
        onProxyRes: saveJSON ? recordProxyJson : null,
      },
    },
    publicPath, // 和 publicPath 保持一致
  },
  css: {
    loaderOptions: {
      // 设置 scss 公用变量文件
      sass: {
        prependData: `@import "@/style/variables.scss";`,
      },
    },
  },
  // 默认设置: https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-service/lib/config/base.js
  chainWebpack: (config) => {
    /**
     * 删除懒加载模块的 prefetch preload，降低带宽压力
     * https://cli.vuejs.org/zh/guide/html-and-static-assets.html#prefetch
     * https://cli.vuejs.org/zh/guide/html-and-static-assets.html#preload
     * 而且预渲染时生成的 prefetch 标签是 modern 版本的，低版本浏览器是不需要的
     */
    config.plugins.delete('prefetch').delete('preload');
    // 解决 cli3 热更新失效 https://github.com/vuejs/vue-cli/issues/1559
    config.resolve.symlinks(true);
    if (process.env.NODE_ENV === 'development') {
      config.devtool('source-map');
    }
    // 判断环境加入模拟数据
    const entry = config.entry('app');
    if (process.env.VUE_APP_HAS_MOCK == 'true') {
      entry.add('./mock').end();
    }
  },
};
